#ifndef OGREViewerH
#define OGREViewerH

#include "../OGREApp/OGREApp.h"


// OGREViewer
class OGREViewer : public OGREApp
{
protected:

	Ogre::Entity*            mpEntity;
	Ogre::SceneNode*         mpEntityNode;
	Ogre::AnimationStateSet* mpAnimationStateSet;
	Ogre::AnimationState*    mpAnimationState;
	Ogre::StringVector       mEntityDB1;
	Ogre::StringVector       mEntityDB2;
	OgreBites::CheckBox*     mpEntityCheck;
	OgreBites::SelectMenu*   mpEntityMenu;
	OgreBites::SelectMenu*   mpAnimationMenu;
	OgreBites::ParamsPanel*  mpEntityInfoPanel;
	OgreBites::Slider*       mpSpeedSlider;
	float mSpeed;

public:

	         OGREViewer();
	virtual ~OGREViewer();

	virtual bool InitializeSceneEntity();
	virtual bool InitializeUI();

	virtual bool frameRenderingQueued( const Ogre::FrameEvent& evt );

	virtual void buttonHit( OgreBites::Button* button );
	virtual void sliderMoved( OgreBites::Slider* slider );
	virtual void itemSelected( OgreBites::SelectMenu* menu );
	virtual void checkBoxToggled( OgreBites::CheckBox* box );

};


#endif
